package com.zenithmind.mall.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.zenithmind.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 优惠券实体
 * 
 * @author ZenithMind Team
 * @since 2025-06-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mall_coupon")
public class Coupon extends BaseEntity {

    /**
     * 优惠券名称
     */
    private String name;

    /**
     * 优惠券描述
     */
    private String description;

    /**
     * 优惠券类型（1-满减券，2-折扣券，3-免邮券）
     */
    private Integer type;

    /**
     * 优惠券面值
     */
    private BigDecimal amount;

    /**
     * 折扣率（折扣券使用，如0.8表示8折）
     */
    private BigDecimal discountRate;

    /**
     * 使用门槛（满多少可用）
     */
    private BigDecimal minAmount;

    /**
     * 发放总数
     */
    private Integer totalCount;

    /**
     * 已领取数量
     */
    private Integer receivedCount;

    /**
     * 已使用数量
     */
    private Integer usedCount;

    /**
     * 每人限领数量
     */
    private Integer limitPerUser;

    /**
     * 有效期开始时间
     */
    private LocalDateTime startTime;

    /**
     * 有效期结束时间
     */
    private LocalDateTime endTime;

    /**
     * 状态（0-未开始，1-进行中，2-已结束，3-已停用）
     */
    private Integer status;

    /**
     * 适用商品类型（0-全部商品，1-指定分类，2-指定商品）
     */
    private Integer applicableType;

    /**
     * 适用商品ID列表（JSON格式）
     */
    private String applicableProducts;

    /**
     * 适用分类ID列表（JSON格式）
     */
    private String applicableCategories;
}
